﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data.Objects.DataClasses;

namespace EislaufScb.Model.Repository
{
    public interface IPersistableRepository : IDisposable
    {
        List<T> GetAll<T>() where T : BaseEntity;

        T GetEntryById<T>(long objectId) where T : BaseEntity;

        void RemoveEntryById<T>(long entryId) where T : BaseEntity;

        T GetObject<T>(T entityObject) where T : BaseEntity;

        void UpdateEntry<T>(T persistenceObject) where T : BaseEntity;

        void AddEntry<T>(T persistenceObject) where T : BaseEntity;

        void Save(BaseEntity baseEntity);
    }
}
